package com.chuanyun.wechatcheckin.model;

import com.fasterxml.jackson.annotation.JsonProperty;

/**
 * 企业微信修改成员假期余额响应结果
 */
public class VacationQuotaUpdateResponse {

    /**
     * 返回码
     * 0表示成功，其他值表示失败
     */
    @JsonProperty("errcode")
    private Integer errcode;

    /**
     * 错误码描述
     */
    @JsonProperty("errmsg")
    private String errmsg;

    // 构造函数
    public VacationQuotaUpdateResponse() {}

    public VacationQuotaUpdateResponse(Integer errcode, String errmsg) {
        this.errcode = errcode;
        this.errmsg = errmsg;
    }

    // Getter 和 Setter 方法
    public Integer getErrcode() {
        return errcode;
    }

    public void setErrcode(Integer errcode) {
        this.errcode = errcode;
    }

    public String getErrmsg() {
        return errmsg;
    }

    public void setErrmsg(String errmsg) {
        this.errmsg = errmsg;
    }

    /**
     * 判断请求是否成功
     * 
     * @return true表示成功，false表示失败
     */
    public boolean isSuccess() {
        return errcode != null && errcode == 0;
    }

    /**
     * 获取错误码描述
     * 
     * @return 错误描述
     */
    public String getErrorDescription() {
        if (isSuccess()) {
            return "操作成功";
        }
        
        if (errcode == null) {
            return "未知错误";
        }
        
        // 根据错误码返回具体描述
        switch (errcode) {
            case 301062:
                return "没有假勤权限";
            case 301063:
                return "参数错误";
            case 301064:
                return "内部错误";
            case 301098:
                return "成员不在假期的适用范围内";
            default:
                return errmsg != null ? errmsg : "未知错误码: " + errcode;
        }
    }

    @Override
    public String toString() {
        return "VacationQuotaUpdateResponse{" +
                "errcode=" + errcode +
                ", errmsg='" + errmsg + '\'' +
                ", success=" + isSuccess() +
                '}';
    }
}